home *** CD-ROM | disk | FTP | other *** search
-
-
-
- MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM)))) MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))
-
-
-
- NNNNAAAAMMMMEEEE
- mrouted - IP multicast routing daemon
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ////uuuussssrrrr////eeeettttcccc////mmmmrrrroooouuuutttteeeedddd [ ----pppp ] [ ----cccc _c_o_n_f_i_g__f_i_l_e ] [ ----dddd [ _d_e_b_u_g__l_e_v_e_l ] ]
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- _M_r_o_u_t_e_d is an implementation of the Distance-Vector Multicast Routing
- Protocol (DVMRP), an earlier version of which is specified in RFC-1075.
- It maintains topological knowledge via a distance-vector routing protocol
- (like RIP, described in RFC-1058), upon which it implements a multicast
- datagram forwarding algorithm called Reverse Path Multicasting.
-
- _M_r_o_u_t_e_d forwards a multicast datagram along a shortest (reverse) path
- tree rooted at the subnet on which the datagram originates. The multicast
- delivery tree may be thought of as a broadcast delivery tree that has
- been pruned back so that it does not extend beyond those subnetworks that
- have members of the destination group. Hence, datagrams are not forwarded
- along those branches which have no listeners of the multicast group. The
- IP time-to-live of a multicast datagram can also be used to limit its
- range.
-
- In order to support multicasting among subnets that are separated by
- (unicast) routers that do not support IP multicasting, _m_r_o_u_t_e_d includes
- support for "tunnels", which are virtual point-to-point links between
- pairs of _m_r_o_u_t_e_ds located anywhere in an internet. IP multicast packets
- are encapsulated for transmission through tunnels, so that they look like
- normal unicast datagrams to intervening routers and subnets. The
- encapsulation is added on entry to a tunnel, and stripped off on exit
- from a tunnel. The packets are encapsulated using the IP-in-IP protocol
- (IP protocol number 4).
-
- The tunnelling mechanism allows _m_r_o_u_t_e_d to establish a virtual internet,
- for the purpose of multicasting only, which is independent of the
- physical internet, and which may span multiple Autonomous Systems. This
- capability is intended for experimental support of internet multicasting
- only, pending widespread support for multicast routing by the regular
- (unicast) routers. _M_r_o_u_t_e_d suffers from the well-known scaling problems
- of any distance-vector routing protocol, and does not (yet) support
- hierarchical multicast routing or inter-operation with other multicast
- routing protocols.
-
- _M_r_o_u_t_e_d handles multicast routing only; there may or may not be unicast
- routing software running on the same machine as _m_r_o_u_t_e_d. For example, an
- Internet unicast firewall can function as a multicast router. With the
- use of tunnels, it is not necessary for _m_r_o_u_t_e_d to have access to more
- than one physical subnet in order to perform multicast forwarding.
-
- IIIINNNNVVVVOOOOCCCCAAAATTTTIIIIOOOONNNN
- If no "-d" option is given, or if the debug level is specified as 0,
- _m_r_o_u_t_e_d detaches from the invoking terminal. Otherwise, it remains
- attached to the invoking terminal and responsive to signals from that
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM)))) MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))
-
-
-
- terminal. If "-d" is given with no argument, the debug level defaults to
- 2. Regardless of the debug level, _m_r_o_u_t_e_d always writes warning and
- error messages to the system log demon. Non-zero debug levels have the
- following effects:
-
- level 1
- all syslog'ed messages are also printed to stderr.
-
- level 2
- all level 1 messages plus notifications of "significant" events are
- printed to stderr.
-
- level 3
- all level 2 messages plus notifications of all packet arrivals and
- departures are printed to stderr.
-
- Upon startup, mrouted writes its pid to the file /etc/mrouted.pid .
-
- CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRAAAATTTTIIIIOOOONNNN
- _M_r_o_u_t_e_d automatically configures itself to forward on all multicast-
- capable interfaces, i.e., interfaces that have the IFF_MULTICAST flag set
- (excluding the loopback "interface"), and it finds other _m_r_o_u_t_e_ds
- directly reachable via those interfaces. To override the default
- configuration, or to add tunnel links to other _m_r_o_u_t_e_ds, configuration
- commands may be placed in /etc/mrouted.conf (or an alternative file,
- specified by the "-c" option). There are four types of configuration
- commands:
-
- phyint <local-addr> [disable] [metric <m>]
- [threshold <t>] [rate_limit <b>]
- [boundary (<boundary-name>|<scoped-addr>/<mask-len>)]
- [altnet <network>/<mask-len>]
-
- tunnel <local-addr> <remote-addr> [metric <m>]
- [threshold <t>] [rate_limit <b>]
- [boundary (<boundary-name>|<scoped-addr>/<mask-len>)]
-
- cache_lifetime <ct>
-
- pruning <off/on>
-
- name <boundary-name> <scoped-addr>/<mask-len>
-
-
- The file format is free-form; whitespace (including newlines) is not
- significant. The _b_o_u_n_d_a_r_y and _a_l_t_n_e_t options may be specified as many
- times as necessary.
-
- The phyint command can be used to disable multicast routing on the
- physical interface identified by local IP address <local-addr>, or to
- associate a non-default metric or threshold with the specified physical
- interface. The local IP address <local-addr> may be alternatively
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM)))) MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))
-
-
-
- replaced by the interface name (e.g., ec0). If a phyint is attached to
- multiple IP subnets, describe each additional subnet with the altnet
- keyword. Phyint commands must precede tunnel commands.
-
- The tunnel command can be used to establish a tunnel link between local
- IP address <local-addr> and remote IP address <remote-addr>, and to
- associate a non-default metric or threshold with that tunnel. The local
- IP address <local-addr> may be replaced by the interface name (e.g.,
- ec0). The remote IP address <remote-addr> may be replaced by a host
- name, if and only if the host name has a single IP address associated
- with it. The tunnel must be set up in the mrouted.conf files of both
- routers before it can be used.
-
- The cache_lifetime is a value that determines the amount of time that a
- cached multicast route stays in kernel before timing out. The value of
- this entry should lie between 300 (5 min) and 86400 (1 day). It defaults
- to 300.
-
- The pruning <off/on> option is provided for _m_r_o_u_t_e_d to act as a non-
- pruning router. It is also possible to start _m_r_o_u_t_e_d in a non-pruning
- mode using the "-p" option on the command line. It is expected that a
- router would be configured in this manner for test purposes only. The
- default mode is pruning enabled.
-
- You may assign names to boundaries to make configuration easier with the
- name keyword. The boundary option on phyint or tunnel commands can
- accept either a name or a boundary.
-
- The metric is the "cost" associated with sending a datagram on the given
- interface or tunnel; it may be used to influence the choice of routes.
- The metric defaults to 1 and you do not normally need to use a different
- value. There is no reason to use a metric greater than 1 for any tunnel
- that is the only path to a sub-cluster of tunnels and subnets. Metrics
- should be kept as small as possible, because _m_r_o_u_t_e_d cannot route along
- paths with a sum of metrics greater than 31.
-
- The threshold is the minimum IP time-to-live required for a multicast
- datagram to be forwarded to the given interface or tunnel. It is used to
- control the scope of multicast datagrams. (The TTL of forwarded packets
- is only compared to the threshold, it is not decremented by the
- threshold. Every multicast router decrements the TTL by 1.) The default
- threshold is 1. You need to use this parameter only if you want to
- prevent ``local'' multicast traffic from traversing a link. Suggested
- Internet thresholds:
-
- 32 for links that separate sites within an organization.
-
- 64 for links that separate communities or organizations, and are
- attached to the Internet MBONE.
-
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-
-
-
- MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM)))) MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))
-
-
-
- 128 for links that separate continents on the MBONE.
-
- For example, if the networks in sites A and B are connected by a tunnel
- with a threshold of 8, then site-specific multicast datagrams should use
- a TTL of 7 to avoid traversing the tunnel.
-
- All _m_r_o_u_t_e_ds connected to a particular subnet or tunnel should use the
- same metric and threshold for that subnet or tunnel to avoid connections
- that only work in one direction.
-
- The rate_limit option allows the network administrator to specify a
- certain bandwidth in Kbits/second which would be allocated to multicast
- traffic. It defaults to 500Kbps on tunnels, and 5Mbps on physical
- interfaces. Set it to zero (0) to mean unlimited.
-
- The boundary option allows an interface to be configured as an
- administrative boundary for the specified scoped address. Packets
- belonging to this address will not be forwarded on a scoped interface.
- The boundary option accepts either a name or a boundary spec.
-
- Here are some reasons why multicast datagrams may fail to traverse a
- tunnel, even though _m_r_o_u_t_e_d is properly exchanging routes (i.e., shows
- lots of entries in response to kill -USR1):
-
- +o programs use a TTL that is too small for the tunnel threshold (as
- configured at the tunnel entry).
-
- +o there's a filtering router in the tunnel path that selectively discards
- some IP datagrams such as IGMP packets or IP-over-IP encapsulated
- multicast data packets.
-
- +o the two ends of tunnel are misconfigured, disagreeing on tunnel type
- (encapsulating vs. source routing).
-
- _M_r_o_u_t_e_d will not initiate execution if it has fewer than two enabled
- vifs, where a vif (virtual interface) is either a physical multicast-
- capable interface or a tunnel. It will log a warning if all of its vifs
- are tunnels; such an _m_r_o_u_t_e_d configuration would be better replaced by
- more direct tunnels (i.e., eliminate the middle man).
-
- EEEEXXXXAAAAMMMMPPPPLLLLEEEE CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRAAAATTTTIIIIOOOONNNN
- This is an example configuration for a mythical multicast router at a big
- school.
-
- #
- # mrouted.conf example
- #
- # Name our boundaries to make it easier
- name LOCAL 239.255.0.0/16
- name EE 239.254.0.0/16
- #
- # xpi0 is our gateway to compsci, don't forward our
-
-
-
- PPPPaaaaggggeeee 4444
-
-
-
-
-
-
- MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM)))) MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))
-
-
-
- # local groups to them
- phyint xpi0 boundary EE
- #
- # xpi1 is our interface on the classroom net, it has four
- # different length subnets on it.
- # note that you can use either an ip address or an
- # interface name
- phyint 172.16.12.38 boundary EE altnet 172.16.15.0/26
- altnet 172.16.15.128/26 altnet 172.16.48.0/24
- #
- # atm0 is our ATM interface, which doesn't properly
- # support multicasting.
- phyint atm0 disable
- #
- # This is an internal tunnel to another EE subnet
- # Remove the default tunnel rate limit, since this
- # tunnel is over ethernets
- tunnel 192.168.5.4 192.168.55.101 metric 1 threshold 1
- rate_limit 0
- #
- # This is our tunnel to the outside world.
- # Careful with those boundaries, Eugene.
- tunnel 192.168.5.4 10.11.12.13 metric 1 threshold 32
- boundary LOCAL boundary EE
-
-
- SSSSIIIIGGGGNNNNAAAALLLLSSSS
- _M_r_o_u_t_e_d responds to the following signals:
-
- HUP restarts _m_r_o_u_t_e_d . The configuration file is reread every time this
- signal is evoked.
-
- TERM
- INT terminates execution gracefully (i.e., by sending good-bye messages
- to all neighboring routers).
-
- USR1 dumps the internal routing tables to /var/tmp/mrouted.dump.
-
- QUIT dumps the internal routing tables to stderr (only if _m_r_o_u_t_e_d was
- invoked with a non-zero debug level).
-
- EEEEXXXXAAAAMMMMPPPPLLLLEEEE
- The command
-
- /sbin/killall -USR1 mrouted
-
- dumps the routing tables to /var/tmp/mrouted.dump, which looks like this:
-
- Virtual Interface Table
- Vif Local-Address Metric Thresh Flags
- 0 36.2.0.8 subnet: 36.2 1 1 querier
- groups: 224.0.2.1
-
-
- PPPPaaaaggggeeee 5555
-
-
-
-
-
-
- MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM)))) MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))
-
-
-
- 224.0.0.4
- pkts in: 3456
- pkts out: 2322323
-
- 1 36.11.0.1 subnet: 36.11 1 1 querier
- groups: 224.0.2.1
- 224.0.1.0
- 224.0.0.4
- pkts in: 345
- pkts out: 3456
-
- 2 36.2.0.8 tunnel: 36.8.0.77 3 1
- peers: 36.8.0.77 (2.2)
- boundaries: 239.0.1
- : 239.1.2
- pkts in: 34545433
- pkts out: 234342
-
- 3 36.2.0.8 tunnel: 36.6.8.23 3 16
-
- Multicast Routing Table (1136 entries)
- Origin-Subnet From-Gateway Metric Tmr In-Vif Out-Vifs
- 36.2 1 45 0 1* 2 3*
- 36.8 36.8.0.77 4 15 2 0* 1* 3*
- 36.11 1 20 1 0* 2 3*
-
-
- In this example, there are four vifs connecting to two subnets and two
- tunnels. The vif 3 tunnel is not in use (no peer address). The vif 0 and
- vif 1 subnets have some groups present; tunnels never have any groups.
- This instance of _m_r_o_u_t_e_d is the one responsible for sending periodic
- group membership queries on the vif 0 and vif 1 subnets, as indicated by
- the "querier" flags. The list of boundaries indicate the scoped addresses
- on that interface. A count of the no. of incoming and outgoing packets is
- also shown at each interface.
-
- Associated with each subnet from which a multicast datagram can originate
- is the address of the previous hop router (unless the subnet is
- directly-connected), the metric of the path back to the origin, the
- amount of time since we last received an update for this subnet, the
- incoming vif for multicasts from that origin, and a list of outgoing
- vifs. "*" means that the outgoing vif is connected to a leaf of the
- broadcast tree rooted at the origin, and a multicast datagram from that
- origin will be forwarded on that outgoing vif only if there are members
- of the destination group on that leaf.
-
- _M_r_o_u_t_e_d also maintains a copy of the kernel forwarding cache table.
- Entries are created and deleted by _m_r_o_u_t_e_d.
-
- The cache tables look like this:
-
-
-
-
-
- PPPPaaaaggggeeee 6666
-
-
-
-
-
-
- MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM)))) MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))
-
-
-
- Multicast Routing Cache Table (147 entries)
- Origin Mcast-group CTmr Age Ptmr IVif Forwvifs
- 13.2.116/22 224.2.127.255 3m 2m - 0 1
- >13.2.116.19
- >13.2.116.196
- 138.96.48/21 224.2.127.255 5m 2m - 0 1
- >138.96.48.108
- 128.9.160/20 224.2.127.255 3m 2m - 0 1
- >128.9.160.45
- 198.106.194/24 224.2.135.190 9m 28s 9m 0P
- >198.106.194.22
-
-
- Each entry is characterized by the origin subnet number and mask and the
- destination multicast group. The 'CTmr' field indicates the lifetime of
- the entry. The entry is deleted from the cache table when the timer
- decrements to zero. The 'Age' field is the time since this cache entry
- was originally created. Since cache entries get refreshed if traffic is
- flowing, routing entries can grow very old. The 'Ptmr' field is simply a
- dash if no prune was sent upstream, or the amount of time until the
- upstream prune will time out. The 'Ivif' field indicates the incoming
- vif for multicast packets from that origin. Each router also maintains a
- record of the number of prunes received from neighboring routers for a
- particular source and group. If there are no members of a multicast group
- on any downward link of the multicast tree for a subnet, a prune message
- is sent to the upstream router. They are indicated by a "P" after the vif
- number. The Forwvifs field shows the interfaces along which datagrams
- belonging to the source-group are forwarded. A "p" indicates that no
- datagrams are being forwarded along that interface. An unlisted interface
- is a leaf subnet with are no members of the particular group on that
- subnet. A "b" on an interface indicates that it is a boundary interface,
- i.e. traffic will not be forwarded on the scoped address on that
- interface. An additional line with a ">" as the first character is
- printed for each source on the subnet. Note that there can be many
- sources in one subnet.
-
- FFFFIIIILLLLEEEESSSS
- /etc/mrouted.conf
- /etc/mrouted.pid
- /var/tmp/mrouted.dump
- /var/tmp/mrouted.cache
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- DVMRP is described, along with other multicast routing algorithms, in the
- paper "Multicast Routing in Internetworks and Extended LANs" by S.
- Deering, in the Proceedings of the ACM SIGCOMM '88 Conference.
-
- AAAAUUUUTTTTHHHHOOOORRRRSSSS
- Steve Deering, Ajit Thyagarajan, Bill Fenner
-
-
-
-
-
-
- PPPPaaaaggggeeee 7777
-
-
-
-
-
-
- MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM)))) MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))
-
-
-
- NNNNOOOOTTTTEEEESSSS
- By default, mrouted and its kernel module is not loaded on new systems.
- You may need to explicitly install the _e_o_e._s_w._i_p_g_a_t_e subsystem in the
- IRIX distribution to load it. After you install that subsystem, you will
- need to do these commands as _r_o_o_t:
-
- # autoconfig
- # chkconfig mrouted on
- # reboot
-
- to perform multicast routing.
-
- If you configure your machine to run mrouted and it is connected to a
- network having MBONE connectivity or if you create a tunnel to a MBONE-
- connected machine, please make sure you have the latest mrouted software.
- Consult ftp://ftp.sgi.com/sgi/ipmcast/README for information on
- availability of updated mrouted software.
-
- Older versions of _m_r_o_u_t_e_d (such as the version in IRIX 3.3 and 4.0.x)
- encapsulate using IP source routing, which puts a heavy load on some
- types of routers. This version does not support IP source route
- tunnelling.
-
- _m_r_o_u_t_e_d is only capable of supporting 32 multicast interfaces.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 8888
-
-
-
-